Software containers have emerged as an efficient and scalable way to deliver packaged software application code for execution in an isolated environment—also known as operating system virtualization. Typically, a software container is deployed for execution as an independent process running on a server infrastructure (e.g., cloud environment). Each software container includes software elements such as code, runtime, system tools, settings, libraries and the like that enable execution of the underlying application. Examples of currently-available software container projects include Docker™, Open Container Initiative (OCI), and Amazon™ EC2 Containers.
However, current-generation software containers are not truly customizable for specific end-users—in that the containers are not able to include dynamic, user-specific data sets that are packaged as an integral and inalienable part of the container. For example, a large data set may include data elements specific to a wide array of different end-users. In order to provide containerized access to a particular end-user's data elements, the container framework must generate the end-user-specific container, then access the entire data set and extract only the end-user's data for use with the application running in the container. Such an approach leads to a host of technical challenges, such as risk of insufficient data security (i.e., one end-user could potentially access another end-user's data), inefficient data transfer and processing (i.e., latency and bandwidth issues relating to retrieval of end-user-specific data from a computing resource outside of the container), and loss of service stability and data availability (i.e., if the computing resource hosting the large data set goes offline or is unavailable, all end-users lose data access).